package com.dhcc.DRGsHosp.web.controller;

import com.dhcc.DRGsHosp.facade.MonthAnalysisReportFacade;
import com.dhcc.DRGsHosp.facade.dto.ParamMap;
import com.dhcc.DRGsHosp.infra.util.WordUtil;
import com.dhcc.DRGsHosp.pdfRender.utils.ResourceLoader;
import org.openkoala.koala.commons.InvokeResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**  
 * ClassName:MonthAnalisisReportController <br/>  
 * Function: TODO 月度分析报告
 * Reason:   TODO ADD REASON. <br/>  
 * Date:     2018年6月19日 下午1:37:27 <br/>  
 * @author   sulina
 * @version    
 * @since    JDK 1.8
 * @see        
 */
@Controller("MonthAnalisisReportController")
@RequestMapping("/monthAnalisisReport")
public class MonthAnalisisReportController {
	@Autowired
	private MonthAnalysisReportFacade monthAnalysisReportFacade;
	
	Map<String,Object> finalmap= new HashMap<String,Object>();
	
	//存放分析报告图片位置
	String picRoot = new File(ResourceLoader.getPath(""))+File.separator+"config/templates/";
	//文档存放位置
	String wordRoot = "";
	//生成文档存放位置
	String writeRoot =new File(ResourceLoader.getPath("")).getParentFile().getParent() + "/tmp/";
	/**
	 * 
	 * @Description : 图片的生成
	 * @methodname :saveImg
	 * @author:ShaoZhiYuan
	 * @return InvokeResult
	 * @date :2017年2月20日
	 */
	@ResponseBody
	@RequestMapping(value = "/saveARImgTest")
	public InvokeResult saveARImgTest(@RequestParam String imgData, @RequestParam String imgName) {
		/**
		 * 生成图片部分
		 */
		try {
			String img = imgData.split(",")[1]; // 逗号分隔，逗号后面是base64图片编码
			WordUtil.GenerateImage(img,picRoot,imgName);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return InvokeResult.success();
	}
	/**
	 * 
	 * @Description : 查找生成报告所需数据
	 * @methodname :findReportInfo
	 * @author:ShaoZhiYuan
	 * @return InvokeResult
	 * @date :2017年2月20日
	 */
	@ResponseBody
	@RequestMapping(value="/findAnalysisReportInfo")
	public InvokeResult findAnalysisReportInfo(HttpServletRequest request, HttpServletResponse response){
		    Map<String,Object> dto=new ParamMap().newMap(request);
		    wordRoot=request.getSession().getServletContext().getRealPath("/")+"pages"+File.separator+"simpreport"+File.separator;
		    dto.put("picRoot", picRoot);
		    dto.put("wordRoot", wordRoot);
		    dto.put("writeRoot", writeRoot);
		    finalmap=new HashMap<>();
		    try{
	         	//返回相关的图片数据信息
	         	finalmap=monthAnalysisReportFacade.findARDRGsReport(dto);
            } catch (Exception e) {
				e.printStackTrace();
			}
		    return InvokeResult.success(finalmap);
	}
	/**
	 * Description ： 生成文档
	 * date: 2017年11月10日 上午11:14:47  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	@ResponseBody
	@RequestMapping(value="/createAnalysisReport")
	public InvokeResult createAnalysisReport(HttpServletRequest request, HttpServletResponse response){
		    try{
	         	//返回相关的图片数据信息
	         	finalmap=monthAnalysisReportFacade.createDRGsReport();
            } catch (Exception e) {
				e.printStackTrace();
			}
		    return InvokeResult.success(finalmap);
	}
	
	/**
	 * @methodname :getDataYear
	 * @Description :获取数据年份
	 * @author:sulina
	 * @return InvokeResult
	 * @date :2018年6月19日
	 */
	@ResponseBody
	@RequestMapping(value = "/getDataYear")
	public InvokeResult getDataYear() {
		List<Map<String,Object>> datayearlist = monthAnalysisReportFacade.getDataYear();
		return InvokeResult.success(datayearlist);
	}
}
  
